/*
* 文 件 名:  IUserDAO.java
* 版    权:  Tydic Technologies Co., Ltd. Copyright 1993-2012,  All rights reserved
* 描    述:  用户表操作接口
* 修 改 人:  agan
* 修改时间:  2012-9-4
* 跟踪单号:  <跟踪单号>
* 修改单号:  <修改单号>
* 修改内容:  <修改内容>
*/
package com.tydic.simple.dao.user;

import com.tydic.framework.dataobject.ResultDTO;
import com.tydic.framework.exception.DAOException;
import com.tydic.simple.dto.user.UserDTO;
import com.tydic.simple.model.user.User;

import java.util.List;

/**
* 用户信息数据库操作
* 
* @author  agan
* @version  [1.0, 2012-9-4]
* @since  [权限管理/1.0]
*/

public interface IUserDAO {
    
    /**
     * 保存用户
     * @param user　用户信息
     * @return 返回主键信息
     * @throws DAOException
     */
    public Long saveUser(User user)
        throws DAOException;
    
    /**
     * 删除用户, 根据用户账号id
     * 
     * @param loginId　  用户登录账号id
     * @throws DAOException
     * @return 返回记录数，不一定准确
     */
    public int deleteUserByLoginId(String loginId)
        throws DAOException;
    
    /**
     * 查询用户, 根据用户账号id
     * @param loginId 用户登录账号id
     * @throws DAOException
     * @return 用户信息
     */
    public User findUserByLoginId(String loginId)
        throws DAOException;
    
    /**
     * 根据条件查询用户, 带分页列表查询
     * 
     * @param userDTO 查询条件
     * @return 用户列表
     * @throws DAOException
     */
    public ResultDTO<User> findUserForPage(UserDTO userDTO)
        throws DAOException;
    
    /**
     * 根据条件查询用户, 不带分页列表查询
     * @param userDTO 查询条件
     * @return 用户列表
     * @throws DAOException
     */
    public List<User> findUserForList(UserDTO userDTO)
        throws DAOException;
    
    /**
     * 根据条件查询单个用户
     * @param userDTO 查询条件
     * @return 用户列表
     * @throws DAOException
     */
    public User findUserForSingle(UserDTO userDTO)
        throws DAOException;
    
    /**
     * 根据登录ID修改用户信息
     * 
     * @param user 用户
     * @return 修改记录条数
     * @throws DAOException
     */
    public int updateUser(User user)
        throws DAOException;
}
